home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-29 | 6.2 KB | 300 lines | [TEXT/MPS ] |
- ; Created: Monday, March 20, 1989 at 10:00:00 AM
- ;
- ; File: DatabaseAccess.a
- ;
- ; Assembler Interface to the Macintosh Libraries
- ; Copyright Apple Computer, Inc. 1989-1991
- ; All Rights Reserved
- ;
- ;___________________________________________________________________________
-
- IF &TYPE('__IncludingDatabaseAccess__') = 'UNDEFINED' THEN
- __IncludingDatabaseAccess__ SET 1
-
- IF &TYPE('__IncludingTraps__') = 'UNDEFINED' THEN
- INCLUDE 'Traps.a'
- ENDIF
-
- ; error and status codes
-
- rcDBNull EQU -800
- rcDBValue EQU -801
- rcDBError EQU -802
- rcDBBadType EQU -803
- rcDBBreak EQU -804
- rcDBExec EQU -805
- rcDBBadSessID EQU -806
- rcDBBadSessNum EQU -807
-
- rcDBBadDDEV EQU -808
-
- rcDBAsyncNotSupp EQU -809
- rcDBBadAsyncPB EQU -810
-
- rcDBNoHandler EQU -811
-
- rcDBWrongVersion EQU -812
- rcDBPackNotInited EQU -813
-
- ; messages for status functions for DBStartQuery
-
- kDBUpdateWind EQU 0
- kDBAboutToInit EQU 1
- kDBInitComplete EQU 2
- kDBSendComplete EQU 3
- kDBExecComplete EQU 4
- kDBStartQueryComplete EQU 5
-
- ; messages for status functions for DBGetQueryResults
-
- kDBGetItemComplete EQU 6
- kDBGetQueryResultsComplete EQU 7
-
- ; DBType codes
-
- typeNone EQU 'none'
- typeBoolean EQU 'bool'
- typeSMInt EQU 'shor'
- typeInteger EQU 'long'
- typeSMFloat EQU 'sing'
- typeFloat EQU 'doub'
- typeDate EQU 'date'
- typeTime EQU 'time'
- typeTimeStamp EQU 'tims'
- typeChar EQU 'TEXT'
- typeDecimal EQU 'deci'
- typeMoney EQU 'mone'
- typeVChar EQU 'vcha'
- typeVBin EQU 'vbin'
- typeLChar EQU 'lcha'
- typeLBin EQU 'lbin'
- typeDiscard EQU 'disc'
-
- ; "dummy" types for DBResultsToText
-
- typeUnknown EQU 'unkn'
- typeColBreak EQU 'colb'
- typeRowBreak EQU 'rowb'
-
- ; pass this in to DBGetItem for any data type
-
- typeAnyType EQU 0
-
- ; infinite timeout value for DBGetItem
-
- kDBWaitForever EQU -1
-
- ; flags for DBGetItem
-
- kDBLastColFlag EQU 1
- kDBNullFlag EQU 4
-
- ; structure for asynchronous parameter block
-
- DBAsyncParamBlockRec RECORD 0
- completionProc DS.L 1 ; pointer to completion routine
- result DS.W 1 ; result of call
- userRef DS.L 1 ; for application's use
- ddevRef DS.L 1 ; for ddev's use
- reserved DS.L 1 ; for internal use
- DBAsyncParmBlkSize EQU *
- ENDR
-
- ; structure for resource list in QueryRecord
-
- ResListElem RECORD 0
- theType DS.L 1
- id DS.W 1
- ResListElemSize EQU *
- ENDR
-
- QueryRecord RECORD 0
- version DS.W 1 ; version
- id DS.W 1 ; id of 'qrsc' this came from
- queryProc DS.L 1 ; handle to query def proc
- ddevName DS.B 64 ; ddev name
- host DS.B 256 ; host
- user DS.B 256 ; user
- password DS.B 256 ; password
- connStr DS.B 256 ; other connection info
- currQuery DS.W 1 ; current query
- numQueries DS.W 1 ; number of queries in queryList
- queryList DS.L 1 ; handle to list of queries
- numRes DS.W 1 ; number of resources in resList
- resList DS.L 1 ; handle to list of other resources
- dataHandle DS.L 1 ; data used by query def proc
- refCon DS.L 1 ; query's reference value
- QueryRecordSize EQU *
- ENDR
-
- DBColInfoRecord RECORD 0
- len DS.W 1
- places DS.W 1
- flags DS.W 1
- DBColInfoRecordSize EQU *
- ENDR
-
- ResultsRecord RECORD 0
- numRows DS.W 1 ; number of rows in result
- numCols DS.W 1 ; number of columns per row
- colTypes DS.L 1 ; data type array
- colData DS.L 1 ; actual results
- colInfo DS.L 1 ; DBColInfoRecord array
- ResultsRecordSize EQU *
- ENDR
-
- ;
- ; Routine Selectors
- ;
-
- InitDBPack EQU $0100
- DBInit EQU $0E02
- DBEnd EQU $0403
- DBGetConnInfo EQU $1704
- DBGetSessionNum EQU $0605
- DBSend EQU $0706
- DBSendItem EQU $0B07
- DBExec EQU $0408
- DBState EQU $0409
- DBGetErr EQU $0E0A
- DBBreak EQU $050B
- DBGetItem EQU $100C
- DBUnGetItem EQU $040D
- DBKill EQU $020E
- DBGetNewQuery EQU $030F
- DBDisposeQuery EQU $0210
- DBStartQuery EQU $0811
- DBGetQueryResults EQU $0A12
- DBResultsToText EQU $0413
- DBInstallResultHandler EQU $0514
- DBRemoveResultHandler EQU $0215
- DBGetResultHandler EQU $0516
-
- ;
- ; For package invocation
- ; First arg is routine selector, second is the trap
- ; Slightly modified from PackMacs.a to pass selector in D0,
- ; and always call Pack13.
- ;
-
- MACRO
- _Pack13Call
- MOVE.W &SYSLIST[1],D0
- _Pack13
- ENDM
-
- ;
- ; Database Access Manager routines
- ;
- MACRO
- _InitDBPack
- MOVE.W #$0004, -(A7) ; push version number
- _Pack13Call #InitDBPack
- ENDM
-
- MACRO
- _DBInit
- _Pack13Call #DBInit
- ENDM
-
- MACRO
- _DBEnd
- _Pack13Call #DBEnd
- ENDM
-
- MACRO
- _DBGetConnInfo
- _Pack13Call #DBGetConnInfo
- ENDM
-
- MACRO
- _DBGetSessionNum
- _Pack13Call #DBGetSessionNum
- ENDM
-
- MACRO
- _DBSend
- _Pack13Call #DBSend
- ENDM
-
- MACRO
- _DBSendItem
- _Pack13Call #DBSendItem
- ENDM
-
- MACRO
- _DBExec
- _Pack13Call #DBExec
- ENDM
-
- MACRO
- _DBState
- _Pack13Call #DBState
- ENDM
-
- MACRO
- _DBGetErr
- _Pack13Call #DBGetErr
- ENDM
-
- MACRO
- _DBBreak
- _Pack13Call #DBBreak
- ENDM
-
- MACRO
- _DBGetItem
- _Pack13Call #DBGetItem
- ENDM
-
- MACRO
- _DBUnGetItem
- _Pack13Call #DBUnGetItem
- ENDM
-
- MACRO
- _DBKill
- _Pack13Call #DBKill
- ENDM
-
- MACRO
- _DBGetNewQuery
- _Pack13Call #DBGetNewQuery
- ENDM
-
- MACRO
- _DBDisposeQuery
- _Pack13Call #DBDisposeQuery
- ENDM
-
- MACRO
- _DBStartQuery
- _Pack13Call #DBStartQuery
- ENDM
-
- MACRO
- _DBGetQueryResults
- _Pack13Call #DBGetQueryResults
- ENDM
-
- MACRO
- _DBResultsToText
- _Pack13Call #DBResultsToText
- ENDM
-
- MACRO
- _DBInstallResultHandler
- _Pack13Call #DBInstallResultHandler
- ENDM
-
- MACRO
- _DBRemoveResultHandler
- _Pack13Call #DBRemoveResultHandler
- ENDM
-
- MACRO
- _DBGetResultHandler
- _Pack13Call #DBGetResultHandler
- ENDM
-
- ENDIF ; ...already included